#ifndef RP2GLOBALSTATE_H
#define RP2GLOBALSTATE_H

#include "Rp2Object.h"

namespace Rp2
{

class GlobalState : public Object
{
public:
	GlobalState();
	virtual ~GlobalState();

	enum StateType
	{
		ALPHA,
		CULL,
		MATERIAL,
		POLYGONOFFSET,
		STENCIL,
		WIREFRAME,
		ZBUFFER,
		MAX_STATE_TYPE
	};

	virtual StateType GetStateType() const = 0;

	// default global state
	static Pointer<GlobalState> DefaultStates[MAX_STATE_TYPE];

};

typedef Pointer<GlobalState> GlobalStatePtr;
}



#endif